<template>
  <el-select :value="value" @change="changeChannel" placeholder="请选择" clearable>
    <!-- clearable:频道的清空功能 -->
    <el-option v-for="item in channelOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
    <!--  label 选项文字  value 选项的值 当你选择某个选项后，该选项的值提供v-model -->
  </el-select>
</template>

<script type="text/javascript">
export default {
  name: "my-channel",
  props: ["value"],
  data() {
    return {
      // 默认选中的下拉选项
      // value: null,
      // 所有的下拉选项
      channelOptions: []
    };
  },
  created() {
    this.getChannelOptions();
  },
  methods: {
    // 频道需要清空功能
    //默认的清空功能是将值改成空字符
    //但是后台要求：值必须是数字，不能是字符串
    // 所以：当频道清空后,将值改成 null
    // 频道改变时的处理函数
    // value 是选择频道后的频道id
    changeChannel(value) {
      //   if (this.value == "") this.value = null;
      if (value === "") value = null;
      // 通知父组件修改filterData.channel_id的值
      this.$emit("input", value);
    },
    // 获取频道数据
    async getChannelOptions() {
      // 发请求，获取频道数据
      const res = await this.$http.get("channels");
      // res = {data:{message:'',data:{channels:[// 频道数组 ]}}}
      // this.channelOptions = [{id,name}]  数据格式
      // console.log(res);
      this.channelOptions = res.data.data.channels;
    }
  }
};
</script>

<style scoped lang="less" >
</style>
